<?php
/**
 * 时间助手函数
 *
 * @author jincai
 *
 */
namespace app\common\helper;

class Time {
    // 时间返回类型【1为字符串，2为时间戳】
    const TYPE_STRING = 1;
    const TYPE_INT = 2;
    
    /**
     * 返回当月的起始时间的时间戳
     *
     * @return false|int
     */
    public static function monthStart() {
        $y = date("Y", time()); //年
        $m = date("m", time()); //月
        return $start_month = mktime(0, 0, 0, $m, 1, $y); // 创建本月开始时间
    }

    /**
     * 返回当月的结束时间的时间戳
     *
     * @return false|int
     */
    public static function monthEnd()
    {
        $y = date("Y", time()); //年
        $m = date("m", time()); //月
        $t = date('t'); // 本月一共有几天
        return $end_month = mktime(23, 59, 59, $m, $t, $y);
    }
    
    /**
     * 返回当天起始时间
     *
     * @param int $type 【以字符串还是时间戳方式返回】
     * @return false|int|string
     */
    public static function today($type = self::TYPE_STRING) {
        $today_string = date('Y-m-d', time());
        if ($type == self::TYPE_INT) {
             return strtotime($today_string);
        } else {
            return $today_string;
        }
        
    }
    
    /**
     * 返回明天的开始时间
     *
     * @param int $type
     * @return false|int|string
     */
    public static function tomorrow($type = self::TYPE_STRING) {
        $string_time = date("Y-m-d",strtotime("+1 day"));
        if ($type == self::TYPE_STRING) {
            return $string_time;
        } else {
            return strtotime($string_time);
        }
    }
    
    /**
     * 获取昨天的时间
     * @param int $type
     * @return false|int|string
     */
    public static function yesterday($type = self::TYPE_STRING) {
        $string_time = date("Y-m-d",strtotime("-1 day"));
        if ($type == self::TYPE_STRING) {
            return $string_time;
        } else {
            return strtotime($string_time);
        }
    }
}
